﻿namespace MicroCloud.Utils
{
    /// <summary>
    /// HTTP请求方法
    /// </summary>
    [Description("HTTP请求方法")]
    public enum HttpRequestMethod
    {
        /// <summary>
        /// 未指定
        /// </summary>
        [Description("未指定")]
        None = 0,

        /// <summary>
        /// Get请求
        /// ：发送请求来获得服务器上的资源，请求体中不会包含请求数据，请求数据放在协议头中。另外get支持快取、缓存、可保留书签等。幂等
        /// </summary>
        [Description("Get请求")]
        Get = 1,

        /// <summary>
        /// Post请求
        /// ：向服务器提交资源让服务器处理，比如提交表单、上传文件等，可能导致建立新的资源或者对原有资源的修改。提交的资源放在请求体中。不支持快取。非幂等
        /// </summary>
        [Description("Post请求")]
        Post = 2,

        /// <summary>
        /// Put请求
        /// ：html表单不支持，发送资源与服务器，并存储在服务器指定位置，要求客户端事先知道该位置；
        /// 比如post是在一个集合上（/province），而put是具体某一个资源上（/province/123）。
        /// 所以put是安全的，无论请求多少次，都是在123上更改，而post可能请求几次创建了几次资源。幂等
        /// </summary>
        [Description("Put请求")]
        Put = 3,

        /// <summary>
        /// Delete请求
        /// ：请求服务器删除某资源。和put都具有破坏性，可能被防火墙拦截。如果是https协议，则无需担心。幂等
        /// </summary>
        [Description("Delete请求")]
        Delete = 4,

        /// <summary>
        /// Head请求
        /// ：本质和get一样，但是响应中没有呈现数据，而是http的头信息，主要用来检查资源或超链接的有效性或是否可以可达、检查网页是否被串改或更新，获取头信息等，特别适用在有限的速度和带宽下。
        /// </summary>
        [Description("Head请求")]
        Head = 5,

        /// <summary>
        /// Patch请求
        /// ：是对PUT方法的补充，用来对已知资源进行局部更新
        /// </summary>
        [Description("Patch请求")]
        Patch = 6,

        /// <summary>
        /// Options请求
        /// ：获取http服务器支持的http请求方法，允许客户端查看服务器的性能，比如ajax跨域时的预检等。
        /// </summary>
        [Description("Options请求")]
        Options = 7,

    }
}